﻿using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using Kugar.Core.BaseStruct;
using Kugar.Core.Configuration;
using Kugar.ERPFramework.Core.Entity;
using Kugar.Core.Security;
using Kugar.ERPFramework.Core.Interfaces;

namespace Kugar.ERPFramework
{

    
    public interface ISystemModule : ICustomBLLModule
    {
        
        ResultReturn<LoginUserInfo> GetUserInfoByID(int userID);


        ResultReturn<int> Login(string userName, string pw, IPAddress address);


        EmptyResultReturn Logout();

        
        ResultReturn<string[]> GetUserNameList();

        
        ResultReturn<LoginUserInfo[]> GetOnlineUser();


        EmptyResultReturn SetUserOffline(int userID);


        EmptyResultReturn SetAllUserOffline();

        
        ResultReturn<RMS_PermissionValueCollection> GetCurrentPermission();

        
        ResultReturn<int> SendMessageToUsers(int userID, string message,int[] revUserIDList);


        ResultReturn<int> SendMessageToAllUser(string message);

        
        ResultReturn<ICustomConfigSection> GetConfigBySectionName(string sectionName);

        
        ResultReturn<string> GetSerialNumber(string moduleID);


        EmptyResultReturn UpdateConfig(string sectionName, KeyValuePair<int, string>[] configs);
    }
}
